//package com.x9space.framework.config;
//
//import com.x9space.framework.maker.MultipleDataSourcesMarker;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.DependsOn;
//import org.springframework.transaction.PlatformTransactionManager;
//import org.springframework.transaction.jta.JtaTransactionManager;
//import com.atomikos.icatch.jta.UserTransactionImp;
//import com.atomikos.icatch.jta.UserTransactionManager;
//
///**
// * JTA 事务配置
// *
// * @author x9space
// */
//@Configuration
//public class AtomikosConfig
//{
//    @Bean(name = "userTransaction")
//    public UserTransaction userTransaction() throws Throwable
//    {
//        UserTransactionImp userTransactionImp = new UserTransactionImp();
//        userTransactionImp.setTransactionTimeout(10000);
//        return userTransactionImp;
//    }
//
//    @Bean(name = "atomikosTransactionManager", initMethod = "init", destroyMethod = "close")
//    public TransactionManager atomikosTransactionManager() throws Throwable
//    {
//        UserTransactionManager userTransactionManager = new UserTransactionManager();
//        userTransactionManager.setForceShutdown(false);
//        return userTransactionManager;
//    }
//
//    @Bean(name = "transactionManager")
//    @DependsOn({ "userTransaction", "atomikosTransactionManager" })
//    public PlatformTransactionManager transactionManager() throws Throwable
//    {
//        UserTransaction userTransaction = userTransaction();
//        TransactionManager atomikosTransactionManager = atomikosTransactionManager();
//        return new JtaTransactionManager(userTransaction, atomikosTransactionManager);
//    }
//}
